/**
 * AI解梦控制器
 * 处理解梦相关的HTTP请求
 */

const { interpretDream } = require('../services/dream.service');
const { logInfo, logError } = require('../logger');

/**
 * AI解梦控制器
 * @param {Object} req - 请求对象
 * @param {Object} res - 响应对象
 */
async function interpretDreamHandler(req, res) {
  try {
    // 从请求体获取梦境内容
    const { dreamContent } = req.body;
    
    // 参数验证
    if (!dreamContent) {
      return res.status(400).json({
        success: false,
        message: '缺少必要的参数：dreamContent'
      });
    }
    
    // 调用AI解梦服务
    const result = await interpretDream(dreamContent);
    
    // 记录日志
    logInfo('AI解梦接口调用成功');
    
    // 返回结果
    return res.status(200).json({
      success: true,
      message: '解梦成功',
      data: {
        dream: result
      }
    });
  } catch (error) {
    // 记录错误日志
    logError('AI解梦接口调用失败', { error: error.message });
    
    // 返回错误响应
    return res.status(500).json({
      success: false,
      message: '服务器内部错误'
    });
  }
}

module.exports = {
  interpretDreamHandler
};